# 对象名.属性名 = 值
# 对象名.方法名(值)
class Soldier():
    def __init__(self,name,model,count):
        self.__name = name  # 人名--私有属性
        self.model = model  # 枪的型号
        self.count = count  # 子弹的数量

    # 通过这两个方法可以有效的规避脏数据(添加访问条件限制，完成私有数据的保护)
    def get_name(self):  # 获取私有属性
        return self.__name

    def set_name(self,name):  # 修改私有属性
        if name.isalpha():   # 判断是不是全是字母
            self.__name = name
        else:
            print("名称不符合规则，无法修改，请输入新的名称")

    def shoot(self):
        if self.count<=0:
            print("没有子弹了")
        else:
            self.count-=1
            print(f"{self.__name}使用了{self.model}射击了一次，还剩{self.count}颗子弹")

zs = Soldier("张三","AK47",3)
zs.shoot()
print(zs.get_name())
zs.set_name("111") # 像这种数据不让他修改
print(zs.get_name())
zs.shoot()